iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0
自我挑戰組

今晚我想來點 Ruby on Rails 系列 第 26

<Day 26>helper_method & helpers

  • 分享至 

  • xImage
  •  

helpers

在 rails 裡面, 在 helpers 的資料夾裡面建立 module 方法可以使用在 view 當中使用,主要的目的是可以將資料轉換成 html 字串輸出用或是邏輯判斷,helper 是全域的,定義在哪一個檔案中沒有關係,檔案名稱也不需要與Controller名稱對應,但我自己還是會針對不同的 views 建立不同的檔名,能夠快速的辨識出哪些方法運用在哪些 views 裡面,當然前提是需要用到的方法很多的話,老話一句看需求。

下圖建立後就可以在 html 檔案裡面使用 favorite_song?(song) 方法

使用 helper 的好處是可以將上圖複雜的結構摸組化,將複雜的程式都用 helper 通通打包起來,而只讓 view 只有單純的輸出以及最簡單的邏輯和迴圈,這也使做專案的自己能夠輕易控制 view 。

helper_method

在 view 裡面,我们可以透過使用 helper_method 在 private 裡面設定的方法拿到使用者所有的書的數量。

但是呢 user_books 其實原本是一個在 UsersController 裡面的 method ,但是我們為了要在 view 裡面要可以使用它。所以我們必須要在 UsersController 宣告他是一個 helper_method 之後才能直接在 view 使用。

helper_method :user_books 這一段表示的是 user_books 原本是一個 controller 裡面的方法,透過 helper_method 之後才能在 view 裡面直接使用這個 controller 的 private 方法,而且這樣做的好處是 controller 中也可以用 user_books 使自己的專案看上去更整潔。


上一篇
<Day 25>什麼是 Self & 怎麼使用它
下一篇
<Day 27>今晚我想點 ruby on rails 的 MVC
系列文
今晚我想來點 Ruby on Rails 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言